/*
 * ConstantPool.h
 *
 *  Created on: 2011-7-23
 *      Author:
 */

#ifndef CONSTANTPOOL_H_
#define CONSTANTPOOL_H_
#include <vector>
#include <tinyxml.h>

#include "StringInfo.h"
#include "NameSpace.h"
#include "NamespaceSet.h"
namespace swfstream {
class StringInfo;
class Namespace;
class NamespaceSet;
class MultinameInfo;
class ConstantPool {
public:
	ConstantPool();
	virtual ~ConstantPool();
	uint32 intCount;
	std::vector<int32> integers;
	uint32 uintCount;
	std::vector<int32> uintegers;
	uint32 doubleCount;
	std::vector<double> doubles; //64-bit IEEE float-point
	uint32 stringCount;
	std::vector<StringInfo*> strings;
	uint32 namespaceCount;
	std::vector<Namespace*> namespaces;
	uint32 namespaceSetCount;
	std::vector<NamespaceSet*> namespaceSets;
	uint32 multinameCount;
	std::vector<MultinameInfo*> multinames;
	virtual TiXmlElement* toTiXmlElement();
};

} /* namespace swfstream */
#endif /* CONSTANTPOOL_H_ */
